Generally, the primary current is applied to a primary coil of an ignition coil for a predetermined time period. When the primary current is stopped, high voltage is generated in a secondary coil to generate a spark. The timing when the primary current stops to be supplied corresponds to the ignition timing.
The ignition timing controller described in JP-4-362275A shows that a crank angle sensor outputs a crank angle signal pulse every 30° CA of the crank shaft, and that a time period for rotating the crankshaft 30° CA is measured. The primary current begins to be applied to the primary coil at the output timing of the crank angle signal pulse that is just before the top dead center. The primary current has been applied for a period that is obtained by multiplying the time period for rotating the crank shaft 30° CA by a predetermined constant (for example, ¼).
However, when the speed of the engine is extremely low, the fluctuation of the engine speed is increased, so that the ignition timing is hardly controlled precisely according to the fluctuation of the engine speed. The variation of the energizing period of the primary coil is increased, so that the ignition timing is dispersed.